package pe.gob.mimp.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import pe.gob.mimp.dao.CombosDao;
import pe.gob.mimp.dao.PersonaDao;
import pe.gob.mimp.model.Persona;
import pe.gob.mimp.model.TablaParametrica;
import pe.gob.mimp.service.CombosService;

@Service("combosService")
@Transactional(readOnly = true)
public class CombosServiceImpl implements CombosService {
	@Autowired
	private CombosDao combosDao;
	@Autowired
	private PersonaDao personaDao;
	
	public TablaParametrica getTablaParametricaPorId(Long idTabla) {
		return combosDao.getTablaParametricaPorId(idTabla);
	}
	
	public TablaParametrica getTipoDocumentoIdentidadPorId(Long idTabla) {
		return combosDao.getTablaParametricaPorId(idTabla);
	}

	public TablaParametrica getDepartamentoPorId(Long idTabla) {
		return combosDao.getTablaParametricaPorId(idTabla);
	}

	public TablaParametrica getProvinciaPorId(Long idTabla) {
		return combosDao.getTablaParametricaPorId(idTabla);
	}

	public TablaParametrica getDistritoPorId(Long idTabla) {
		return combosDao.getTablaParametricaPorId(idTabla);
	}

	public List<TablaParametrica> getListaTipoDocumentoIdentidad() {
		return combosDao.getLista("TIPODOCIDEN");
	}

	public List<TablaParametrica> getListaDepartamento() {
		return combosDao.getLista("DEPARTAMENTO");
	}

	public List<TablaParametrica> getListaProvincia(Long relacionCodigo) {
		return combosDao.getListaHijos("DEPARTAMENTO", relacionCodigo);
	}

	public List<TablaParametrica> getListaDistrito(Long relacionCodigo) {
		return combosDao.getListaHijos("PROVINCIA", relacionCodigo);
	}

	public List<TablaParametrica> getListaTipoCaso() {
		return combosDao.getLista("TIPOCASOSOCIAL");
	}

	public List<TablaParametrica> getListaMotivo() {
		return combosDao.getLista("MOTIVO");
	}

	public List<TablaParametrica> getListaMedioIngreso() {
		return combosDao.getLista("MEDIOINGRESO");
	}
        
    public List<TablaParametrica> getListaTipoEntidad() {
		return combosDao.getLista("TIPOENTIDAD");
	}

	public List<Persona> getListaResponsable() {
		return personaDao.getResponsables();
	}
}
